এই অধ্যায়ে আপনি স্ট্রাকচার(structure)-কে আর্গুমেন্ট হিসাবে ফাংশনের মধ্য দিয়ে অতিক্রম করানো সম্পর্কিত কিছু উদাহরণ দেখবেন এবং আপনার প্রোগ্রামে ব্যবহার করা শিখবেন।
সি প্রোগ্রামে structure কে function এর মধ্য দিয়ে দুইভাবে অতিক্রম(pass) করানো যায়ঃ
- ভ্যালু হিসাবে অতিক্রম করানো(Passing by value)
- রেফারেন্স হিসাবে অতিক্রম করানো(Passing by reference)
সাধারণ ভ্যারিয়েবলের মত স্ট্রাকচারকেও(structure) ফাংশনের মধ্য দিয়ে আর্গুমেন্ট(argument) হিসাবে অতিক্রম করানো যেতে পারে।
যদি স্ট্রাকচারকে ফাংশনের মধ্য দিয়ে ভ্যালু হিসাবে অতিক্রম(pass) করানো হয় তাহলে ফাংশন ডেফিনিশন(definition) এর মধ্যে স্ট্রাকচার ভ্যারিয়েবলের পরিবর্তন ঘটলেও অরিজিনাল স্ট্রাকচার ভ্যারিয়েবলে কোনো ধরনের প্রভাব ফেলবে না।
উদাহরনঃ student নামের একটি স্ট্রাকচার তৈরির জন্য সি প্রোগ্রাম, যাতে স্ট্রাকচার এর মেম্বার হিসাবে স্টুডেন্টের নাম ও রোল নাম্বার রয়েছে এবং তথ্য প্রদর্শনীর জন্য display() ফাংশন ব্যবহার করা হয়েছে।
kt_satt_skill_example_id=550
স্ট্রাকচারকে রেফারেন্স হিসাবে ফাংশনের মধ্য দিয়ে অতিক্রম করানো হলে স্ট্রাকচার ভ্যারিয়েবলের মেমোরি এড্রেস ফাংশনের মধ্য দিয়ে অতিক্রম করে।
যদি স্ট্রাকচারকে ফাংশনের মধ্য দিয়ে রেফারেন্স(reference) হিসাবে অতিক্রম(pass) করানো হয় তাহলে ফাংশন ডেফিনিশন(definition) এর মধ্যে স্ট্রাকচার ভ্যারিয়েবলের পরিবর্তন ঘটলে অরিজিনাল স্ট্রাকচার ভ্যারিয়েবলেও প্রভাব পড়বে।
ফুট-ইঞ্চিতে দুটি দূরত্বের যোগ এবং রিটার্ন স্টেটমেন্ট ব্যবহার না করে ফলাফল প্রদর্শনীর জন্য সি প্রোগ্রাম।
kt_satt_skill_example_id=554
- উপরের প্রোগ্রামে dist1 এবং dist2 স্ট্রাকচার ভ্যারিয়েবলকে
add
ফাংশনের মধ্য দিয়ে ভ্যালু(value) হিসাবে অতিক্রম(pass) করানো হয়েছে। কারণ dist1 এবং dist2 কে main() ফাংশনের মধ্যে প্রদর্শনীর প্রয়োজন নাই।- কিন্তু dist3 কে রেফারেন্স হিসাবে অতিক্রম করানো হয়েছে। অর্থাৎ dist3 এর এড্রেসকে(
(&dist3)
) ফাংশনের আর্গুমেন্ট হিসাবে অতিক্রম করানো হয়েছে।- এই কারণে main ফাংশন থেকে
add
ফাংশনকে কল(call) করলেadd
ফাংশনের মধ্যে d3(স্ট্রাকচার পয়েন্টার ভ্যারিয়েবল) dist3 (স্ট্রাকচার ভ্যারিয়েবল) এর এড্রেসকে নির্দেশ(point) করে। তাই d3 ভ্যারিয়েবলে কোনো পরিবর্তন আনলে main ফাংশনের dist3 ভ্যারিয়বলে তা দেখা দেয়।- ফলে সঠিক যোগফল আউটপুটে প্রদর্শীত হয়।
common.read_more